The increasing resolution of digital cameras and scanners and the popularity of digital videos have increased the size of associated files and the burden on communication networks used to transfer these files among users. To alleviate some of this burden, caching proxies are often used. In these systems, requests for a file are sent from a requesting node to a proxy rather than to the content provider. The proxy then requests the file from the content provider. As the proxy receives the file from the content provider, the proxy streams the file to the requesting node. Once the transfer is complete, the proxy may retain all or a portion of the file in cache. When a subsequent request for the file is received, the proxy serves the request from the proxy cache rather than requesting the file from the content provider.
One issue arises when only a portion of the file is stored in the proxy cache. In this case, when a subsequent request for the file is received, the proxy begins to serve the request from the proxy cache. However, in order to obtain the rest of the file, the proxy must request the entire file from the content provider. In other words, even though a portion of the file is stored in the proxy cache, the entire file must still be transferred from the content provider to the proxy, thereby wasting time and bandwidth.
Another issue with typical caching proxies is that interruptions of transfers often occur. These interruptions may be due to a user at a requesting node canceling the transfer or an interruption in a connection between the content provider and the caching proxy and/or the connection between the caching proxy and the requesting node. If an interruption occurs during transfer of the file from the content provider to the caching proxy, the portion of the file already received by the caching proxy is cleared from the proxy cache. As a result, when a subsequent request for the file is received by the caching proxy, the caching proxy must again request the entire file from the content provider. Thus, there remains a need for a system and method for improved proxy transfers.